<!-- HTML header for doxygen 1.8.20-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=9"/>
	<meta name="generator" content="Doxygen 1.9.4"/>
	<meta name="viewport" content="width=device-width, initial-scale=1"/>
	<title>Raspberry Pi Pico SDK: include/hardware/gpio.h Source File</title>
	<!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="dynsections.js"></script>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
	<link href="doxygen.css" rel="stylesheet" type="text/css" />
	<link href="normalise.css" rel="stylesheet" type="text/css"/>
<link href="main.css" rel="stylesheet" type="text/css"/>
<link href="styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
	<div class="navigation-mobile">
		<div class="logo--mobile">
			<a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
		</div>
		<div class="navigation-toggle">
			<span class="line-1"></span>
			<span class="line-2">
				<p>Menu Toggle</p>
			</span>
			<span class="line-3"></span>
		</div>
	</div>
	<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
		<div class="logo">
			<a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
			<span style="display: inline-block; margin-top: 10px;">
				v2.0.0
			</span>
		</div>
		<div class="navigation-footer">
			<img src="logo-mobile.svg" alt="Raspberry Pi">
			<a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
		</div>
<!-- 		<div class="search">
			<form>
				<input type="search" name="search" id="search" placeholder="Search">
				<input type="submit" value="Search">
			</form>
		</div> -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('gpio_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle"><div class="title">gpio.h</div></div>
</div><!--header-->
<div class="contents">
<a href="gpio_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment"> * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment"> *</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"> * SPDX-License-Identifier: BSD-3-Clause</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"> */</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="preprocessor">#ifndef _HARDWARE_GPIO_H</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="preprocessor">#define _HARDWARE_GPIO_H</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="preprocessor">#include &quot;<a class="code" href="pico_8h.html">pico.h</a>&quot;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="preprocessor">#include &quot;hardware/structs/sio.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="preprocessor">#include &quot;hardware/structs/pads_bank0.h&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="preprocessor">#include &quot;hardware/structs/io_bank0.h&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="preprocessor">#include &quot;<a class="code" href="irq_8h.html">hardware/irq.h</a>&quot;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="comment">// PICO_CONFIG: PICO_USE_GPIO_COPROCESSOR, Enable/disable use of the GPIO coprocessor for GPIO access, type=bool, default=1, group=hardware_gpio</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="preprocessor">#if !defined(PICO_USE_GPIO_COPROCESSOR) &amp;&amp; HAS_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="preprocessor">#define PICO_USE_GPIO_COPROCESSOR 1</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="preprocessor">#include &quot;hardware/gpio_coproc.h&quot;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="comment">// PICO_CONFIG: PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO, Enable/disable assertions in the hardware_gpio module, type=bool, default=0, group=hardware_gpio</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#ifndef PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#ifdef PARAM_ASSERTIONS_ENABLED_GPIO </span><span class="comment">// backwards compatibility with SDK &lt; 2.0.0</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#define PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO PARAM_ASSERTIONS_ENABLED_GPIO</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#define PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO 0</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="gpio_8h.html#a27085b238a536b1a919497a563caf666">  170</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="gpio_8h.html#a27085b238a536b1a919497a563caf666">gpio_dir</a> {</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531">  171</a></span>    <a class="code hl_enumvalue" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531">GPIO_OUT</a> = 1u, </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155">  172</a></span>    <a class="code hl_enumvalue" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155">GPIO_IN</a> = 0u,  </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span>};</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span> </div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">  190</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> {</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136">  191</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136">GPIO_IRQ_LEVEL_LOW</a> = 0x1u,  </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de">  192</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de">GPIO_IRQ_LEVEL_HIGH</a> = 0x2u, </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59">  193</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59">GPIO_IRQ_EDGE_FALL</a> = 0x4u,  </div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e">  194</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e">GPIO_IRQ_EDGE_RISE</a> = 0x8u,  </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span>};</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">  205</a></span><span class="keyword">typedef</span> void (*<a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a>)(uint gpio, uint32_t event_mask);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span> </div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">  207</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">  208</a></span>    <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">GPIO_OVERRIDE_NORMAL</a> = 0,      </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">  209</a></span>    <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">GPIO_OVERRIDE_INVERT</a> = 1,      </div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">  210</a></span>    <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">GPIO_OVERRIDE_LOW</a> = 2,         </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">  211</a></span>    <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">GPIO_OVERRIDE_HIGH</a> = 3,        </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span>};</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span> </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">  221</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">  222</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a> = 0,  </div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a> = 1   </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">  224</a></span>};</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">  232</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">  233</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a> = 0, </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">  234</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a> = 1, </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">  235</a></span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a> = 2, </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span>    <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a> = 3 </div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">  237</a></span>};</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> check_gpio_param(__unused uint gpio) {</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span>    invalid_params_if(HARDWARE_GPIO, gpio &gt;= NUM_BANK0_GPIOS);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span>}</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span><span class="comment">// Pad Controls + IO Muxing</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span><span class="comment">// Declarations for gpio.c</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span> </div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn);</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span> </div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga32c1aae77b4b3bf42e9ae554d16284ab">gpio_set_function_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga83093178ba0ad7d711bff47fc90d361b">gpio_set_function_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span> </div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span><a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> <a class="code hl_function" href="group__hardware__gpio.html#ga24dabfcb46dde4daa8938b36df130c31">gpio_get_function</a>(uint gpio);</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno">  281</span> </div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno">  292</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(uint gpio, <span class="keywordtype">bool</span> up, <span class="keywordtype">bool</span> down);</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno">  293</span> </div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">  299</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a>(uint gpio) {</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno">  300</span>    <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">true</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>}</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span> </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">  309</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a>(uint gpio) {</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno">  310</span>    <span class="keywordflow">return</span> (pads_bank0_hw-&gt;io[gpio] &amp; PADS_BANK0_GPIO0_PUE_BITS) != 0;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno">  311</span>}</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno">  312</span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">  318</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a>(uint gpio) {</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno">  319</span>    <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>}</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">  328</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a>(uint gpio) {</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno">  329</span>    <span class="keywordflow">return</span> (pads_bank0_hw-&gt;io[gpio] &amp; PADS_BANK0_GPIO0_PDE_BITS) != 0;</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno">  330</span>}</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span> </div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">  337</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a>(uint gpio) {</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno">  338</span>    <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">false</span>, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno">  339</span>}</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno">  340</span> </div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno">  349</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a>(uint gpio, uint value);</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno">  350</span> </div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno">  357</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a>(uint gpio, uint value);</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno">  358</span> </div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno">  365</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a>(uint gpio, uint value);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno">  366</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno">  373</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a>(uint gpio, uint value);</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno">  374</span> </div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno">  381</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a>(uint gpio, <span class="keywordtype">bool</span> enabled);</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno">  382</span> </div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno">  395</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a>(uint gpio, <span class="keywordtype">bool</span> enabled);</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno">  396</span> </div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno">  403</span><span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a>(uint gpio);</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno">  404</span> </div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno">  412</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> slew);</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span> </div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno">  421</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> <a class="code hl_function" href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a>(uint gpio);</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno">  422</span> </div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno">  430</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> drive);</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno">  431</span> </div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno">  439</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> <a class="code hl_function" href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a>(uint gpio);</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno">  440</span> </div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled);</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span> </div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno">  468</span><span class="comment">// PICO_CONFIG: GPIO_IRQ_CALLBACK_ORDER_PRIORITY, IRQ priority order of the default IRQ callback, min=0, max=255, default=PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY, group=hardware_gpio</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno">  469</span><span class="preprocessor">#ifndef GPIO_IRQ_CALLBACK_ORDER_PRIORITY</span></div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno">  470</span><span class="preprocessor">#define GPIO_IRQ_CALLBACK_ORDER_PRIORITY PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY</span></div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno">  471</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno">  472</span> </div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno">  473</span><span class="comment">// PICO_CONFIG: GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY, IRQ priority order of raw IRQ handlers if the priority is not specified, min=0, max=255, default=PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY, group=hardware_gpio</span></div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno">  474</span><span class="preprocessor">#ifndef GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY</span></div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno">  475</span><span class="preprocessor">#define GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY</span></div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno">  476</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno">  477</span> </div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno">  492</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>(<a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback);</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno">  493</span> </div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno">  525</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled, <a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback);</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno">  526</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled);</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno">  538</span> </div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">  546</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(uint gpio) {</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno">  547</span>    check_gpio_param(gpio);</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno">  548</span>    <a class="code hl_struct" href="structio__bank0__irq__ctrl__hw__t.html">io_bank0_irq_ctrl_hw_t</a> *irq_ctrl_base = <a class="code hl_function" href="group__pico__platform.html#ga58434ad816f519308ee02c639b7965bc">get_core_num</a>() ?</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno">  549</span>                                            &amp;io_bank0_hw-&gt;proc1_irq_ctrl : &amp;io_bank0_hw-&gt;proc0_irq_ctrl;</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno">  550</span>    io_ro_32 *status_reg = &amp;irq_ctrl_base-&gt;ints[gpio &gt;&gt; 3u];</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno">  551</span>    <span class="keywordflow">return</span> (*status_reg &gt;&gt; (4 * (gpio &amp; 7u))) &amp; 0xfu;</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno">  552</span>}</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno">  553</span> </div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno">  568</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(uint gpio, uint32_t event_mask);</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno">  569</span> </div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno">  603</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority);</div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span> </div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno">  638</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority);</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno">  639</span> </div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">  669</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority) {</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno">  670</span>    check_gpio_param(gpio);</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno">  671</span><span class="preprocessor">#if NUM_BANK0_GPIOS &gt; 32</span></div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno">  672</span>    <a class="code hl_function" href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a>(1ull &lt;&lt; gpio, handler, order_priority);</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno">  673</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno">  674</span>    <a class="code hl_function" href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a>(1u &lt;&lt; gpio, handler, order_priority);</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno">  675</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno">  676</span>}</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno">  677</span> </div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno">  708</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno">  709</span> </div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno">  740</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span> </div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">  768</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler) {</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno">  769</span>    check_gpio_param(gpio);</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span><span class="preprocessor">#if NUM_BANK0_GPIOS &gt; 32</span></div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span>    <a class="code hl_function" href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a>(1ull &lt;&lt; gpio, handler);</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno">  772</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno">  773</span>    <a class="code hl_function" href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a>(1u &lt;&lt; gpio, handler);</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno">  774</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno">  775</span>}</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno">  776</span> </div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno">  788</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno">  789</span> </div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno">  801</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span> </div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">  814</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler) {</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno">  815</span>    check_gpio_param(gpio);</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno">  816</span><span class="preprocessor">#if NUM_BANK0_GPIOS &gt; 32</span></div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno">  817</span>    <a class="code hl_function" href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a>(1ull &lt;&lt; gpio, handler);</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno">  818</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno">  819</span>    <a class="code hl_function" href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a>(1u &lt;&lt; gpio, handler);</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno">  820</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno">  821</span>}</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno">  822</span> </div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno">  831</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a>(uint gpio);</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno">  832</span> </div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno">  838</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a>(uint gpio);</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno">  839</span> </div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno">  848</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a>(uint gpio_mask);</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno">  849</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno">  850</span><span class="comment">// Input</span></div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno">  851</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno">  852</span> </div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">  859</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a>(uint gpio) {</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno">  860</span><span class="preprocessor">#if NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno">  861</span>    <span class="keywordflow">return</span> sio_hw-&gt;gpio_in &amp; (1u &lt;&lt; gpio);</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno">  862</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno">  863</span>    <span class="keywordflow">if</span> (gpio &lt; 32) {</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno">  864</span>        <span class="keywordflow">return</span> sio_hw-&gt;gpio_in &amp; (1u &lt;&lt; gpio);</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno">  865</span>    } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno">  866</span>        <span class="keywordflow">return</span> sio_hw-&gt;gpio_hi_in &amp; (1u &lt;&lt; (gpio - 32));</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno">  867</span>    }</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno">  868</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno">  869</span>}</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno">  870</span> </div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">  876</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno">  877</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span>    <span class="keywordflow">return</span> gpioc_lo_in_get();</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno">  880</span>    <span class="keywordflow">return</span> sio_hw-&gt;gpio_in;</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno">  881</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno">  882</span>}</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno">  883</span> </div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">  889</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint64_t <a class="code hl_function" href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">gpio_get_all64</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno">  890</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno">  891</span>    <span class="keywordflow">return</span> gpioc_hilo_in_get();</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno">  892</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno">  893</span>    <span class="keywordflow">return</span> sio_hw-&gt;gpio_in;</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno">  894</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno">  895</span>    <span class="keywordflow">return</span> sio_hw-&gt;gpio_in | (((uint64_t)sio_hw-&gt;gpio_hi_in) &lt;&lt; 32u);</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno">  896</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno">  897</span>}</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno">  898</span> </div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno">  899</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno">  900</span><span class="comment">// Output</span></div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno">  901</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno">  902</span> </div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">  908</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(uint32_t mask) {</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno">  909</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno">  910</span>    gpioc_lo_out_set(mask);</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno">  911</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno">  912</span>    sio_hw-&gt;gpio_set = mask;</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno">  913</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno">  914</span>}</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno">  915</span> </div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">  921</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">gpio_set_mask64</a>(uint64_t mask) {</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno">  922</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno">  923</span>    gpioc_hilo_out_set(mask);</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno">  924</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno">  925</span>    sio_hw-&gt;gpio_set = (uint32_t)mask;</div>
<div class="line"><a id="l00926" name="l00926"></a><span class="lineno">  926</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00927" name="l00927"></a><span class="lineno">  927</span>    sio_hw-&gt;gpio_set = (uint32_t)mask;</div>
<div class="line"><a id="l00928" name="l00928"></a><span class="lineno">  928</span>    sio_hw-&gt;gpio_hi_set = (uint32_t)(mask &gt;&gt; 32u);</div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno">  930</span>}</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno">  931</span> </div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">  938</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">gpio_set_mask_n</a>(uint n, uint32_t mask) {</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno">  939</span>    <span class="keywordflow">if</span> (!n) {</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno">  940</span>        <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(mask);</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno">  941</span>    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno">  942</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span>        gpioc_hi_out_set(mask);</div>
<div class="line"><a id="l00944" name="l00944"></a><span class="lineno">  944</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &gt;= 32</span></div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno">  945</span>        sio_hw-&gt;gpio_hi_set = mask;</div>
<div class="line"><a id="l00946" name="l00946"></a><span class="lineno">  946</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno">  947</span>    }</div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno">  948</span>}</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno">  949</span> </div>
<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">  955</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(uint32_t mask) {</div>
<div class="line"><a id="l00956" name="l00956"></a><span class="lineno">  956</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00957" name="l00957"></a><span class="lineno">  957</span>    gpioc_lo_out_clr(mask);</div>
<div class="line"><a id="l00958" name="l00958"></a><span class="lineno">  958</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno">  959</span>    sio_hw-&gt;gpio_clr = mask;</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span>}</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span> </div>
<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">  968</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">gpio_clr_mask64</a>(uint64_t mask) {</div>
<div class="line"><a id="l00969" name="l00969"></a><span class="lineno">  969</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00970" name="l00970"></a><span class="lineno">  970</span>    gpioc_hilo_out_clr(mask);</div>
<div class="line"><a id="l00971" name="l00971"></a><span class="lineno">  971</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l00972" name="l00972"></a><span class="lineno">  972</span>    sio_hw-&gt;gpio_clr = (uint32_t)mask;</div>
<div class="line"><a id="l00973" name="l00973"></a><span class="lineno">  973</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno">  974</span>    sio_hw-&gt;gpio_clr = (uint32_t)mask;</div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno">  975</span>    sio_hw-&gt;gpio_hi_clr = (uint32_t)(mask &gt;&gt; 32u);</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno">  976</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno">  977</span>}</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno">  978</span> </div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno">  979</span> </div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">  986</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">gpio_clr_mask_n</a>(uint n, uint32_t mask) {</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno">  987</span>    <span class="keywordflow">if</span> (!n) {</div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno">  988</span>        <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(mask);</div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno">  989</span>    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno">  990</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno">  991</span>        gpioc_hi_out_clr(mask);</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno">  992</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &gt;= 32</span></div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno">  993</span>        sio_hw-&gt;gpio_hi_clr = mask;</div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno">  994</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00995" name="l00995"></a><span class="lineno">  995</span>    }</div>
<div class="line"><a id="l00996" name="l00996"></a><span class="lineno">  996</span>}</div>
<div class="line"><a id="l00997" name="l00997"></a><span class="lineno">  997</span> </div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd"> 1003</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a>(uint32_t mask) {</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span>    gpioc_lo_out_xor(mask);</div>
<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span>    sio_hw-&gt;gpio_togl = mask;</div>
<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>}</div>
<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119"> 1016</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119">gpio_xor_mask64</a>(uint64_t mask) {</div>
<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span>    gpioc_hilo_out_xor(mask);</div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span>    sio_hw-&gt;gpio_togl = (uint32_t)mask;</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span>    sio_hw-&gt;gpio_togl = (uint32_t)mask;</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span>    sio_hw-&gt;gpio_hi_togl = (uint32_t)(mask &gt;&gt; 32u);</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span>}</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> </div>
<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06"> 1033</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06">gpio_xor_mask_n</a>(uint n, uint32_t mask) {</div>
<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span>    <span class="keywordflow">if</span> (!n) {</div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span>        <a class="code hl_function" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a>(mask);</div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span>    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span>        gpioc_hi_out_xor(mask);</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &gt;= 32</span></div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span>        sio_hw-&gt;gpio_hi_togl = mask;</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span>    }</div>
<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span>}</div>
<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> </div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302"> 1056</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a>(uint32_t mask, uint32_t value) {</div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span>    gpioc_lo_out_xor((gpioc_lo_out_get() ^ value) &amp; mask);</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span>    sio_hw-&gt;gpio_togl = (sio_hw-&gt;gpio_out ^ value) &amp; mask;</div>
<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span>}</div>
<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> </div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003"> 1075</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003">gpio_put_masked64</a>(uint64_t mask, uint64_t value) {</div>
<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span>    gpioc_hilo_out_xor((gpioc_hilo_out_get() ^ value) &amp; mask);</div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span>    sio_hw-&gt;gpio_togl = (sio_hw-&gt;gpio_out ^ (uint32_t)value) &amp; (uint32_t)mask;</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span>    sio_hw-&gt;gpio_togl = (sio_hw-&gt;gpio_out ^ (uint32_t)value) &amp; (uint32_t)mask;</div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span>    sio_hw-&gt;gpio_hi_togl = (sio_hw-&gt;gpio_hi_out ^ (uint32_t)(value&gt;&gt;32u)) &amp; (uint32_t)(mask&gt;&gt;32u);</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span>}</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> </div>
<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5"> 1098</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5">gpio_put_masked_n</a>(uint n, uint32_t mask, uint32_t value) {</div>
<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span>    <span class="keywordflow">if</span> (!n) {</div>
<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span>        <a class="code hl_function" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a>(mask, value);</div>
<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span>    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span>        gpioc_hi_out_xor((gpioc_hi_out_get() ^ value) &amp; mask);</div>
<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span>        sio_hw-&gt;gpio_hi_togl = (sio_hw-&gt;gpio_hi_out ^ value) &amp; mask;</div>
<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span>    }</div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>}</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8"> 1115</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a>(uint32_t value) {</div>
<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span>    gpioc_lo_out_put(value);</div>
<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span>    sio_hw-&gt;gpio_out = value;</div>
<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span>}</div>
<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> </div>
<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c"> 1128</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c">gpio_put_all64</a>(uint64_t value) {</div>
<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span>    gpioc_hilo_out_put(value);</div>
<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span>    sio_hw-&gt;gpio_out = (uint32_t)value;</div>
<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span>    sio_hw-&gt;gpio_out = (uint32_t)value;</div>
<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span>    sio_hw-&gt;gpio_hi_out = (uint32_t)(value &gt;&gt; 32u);</div>
<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span>}</div>
<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> </div>
<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab"> 1145</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a>(uint gpio, <span class="keywordtype">bool</span> value) {</div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span>    gpioc_bit_out_put(gpio, value);</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span>    uint32_t mask = 1ul &lt;&lt; gpio;</div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span>    <span class="keywordflow">if</span> (value)</div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span>        <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(mask);</div>
<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span>    <span class="keywordflow">else</span></div>
<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span>        <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(mask);</div>
<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span>    uint32_t mask = 1ul &lt;&lt; (gpio &amp; 0x1fu);</div>
<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span>    <span class="keywordflow">if</span> (gpio &lt; 32) {</div>
<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span>        <span class="keywordflow">if</span> (value) {</div>
<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span>            sio_hw-&gt;gpio_set = mask;</div>
<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span>        } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span>            sio_hw-&gt;gpio_clr = mask;</div>
<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span>        }</div>
<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span>    } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span>        <span class="keywordflow">if</span> (value) {</div>
<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span>            sio_hw-&gt;gpio_hi_set = mask;</div>
<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span>        } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span>            sio_hw-&gt;gpio_hi_clr = mask;</div>
<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span>        }</div>
<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span>    }</div>
<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span>}</div>
<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> </div>
<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef"> 1188</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a>(uint gpio) {</div>
<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span><span class="preprocessor">#if NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span>    <span class="keywordflow">return</span> sio_hw-&gt;gpio_out &amp; (1u &lt;&lt; gpio);</div>
<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span>    uint32_t bits = gpio &lt; 32 ? sio_hw-&gt;gpio_out : sio_hw-&gt;gpio_hi_out;</div>
<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span>    <span class="keywordflow">return</span> bits &amp; (1u &lt;&lt; (gpio &amp; 0x1fu));</div>
<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span>}</div>
<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> </div>
<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span><span class="comment">// Direction</span></div>
<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> </div>
<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969"> 1208</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a>(uint32_t mask) {</div>
<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span>    gpioc_lo_oe_set(mask);</div>
<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span>    sio_hw-&gt;gpio_oe_set = mask;</div>
<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span>}</div>
<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> </div>
<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e"> 1223</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e">gpio_set_dir_out_masked64</a>(uint64_t mask) {</div>
<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span>    gpioc_hilo_oe_set(mask);</div>
<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span>    sio_hw-&gt;gpio_oe_set = mask;</div>
<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span>    sio_hw-&gt;gpio_oe_set = (uint32_t)mask;</div>
<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span>    sio_hw-&gt;gpio_hi_oe_set = (uint32_t)(mask &gt;&gt; 32u);</div>
<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>}</div>
<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> </div>
<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53"> 1239</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a>(uint32_t mask) {</div>
<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span>    gpioc_lo_oe_clr(mask);</div>
<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span>    sio_hw-&gt;gpio_oe_clr = mask;</div>
<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span>}</div>
<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> </div>
<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371"> 1252</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371">gpio_set_dir_in_masked64</a>(uint64_t mask) {</div>
<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span>    gpioc_hilo_oe_clr(mask);</div>
<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span>    sio_hw-&gt;gpio_oe_clr = mask;</div>
<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span>    sio_hw-&gt;gpio_oe_clr = (uint32_t)mask;</div>
<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span>    sio_hw-&gt;gpio_hi_oe_clr = (uint32_t)(mask &gt;&gt; 32u);</div>
<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span>}</div>
<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> </div>
<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2"> 1274</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a>(uint32_t mask, uint32_t value) {</div>
<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span>    gpioc_lo_oe_xor((gpioc_lo_oe_get() ^ value) &amp; mask);</div>
<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span>    sio_hw-&gt;gpio_oe_togl = (sio_hw-&gt;gpio_oe ^ value) &amp; mask;</div>
<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span>}</div>
<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> </div>
<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148"> 1293</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148">gpio_set_dir_masked64</a>(uint64_t mask, uint64_t value) {</div>
<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span>    gpioc_hilo_oe_xor((gpioc_hilo_oe_get() ^ value) &amp; mask);</div>
<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span>    sio_hw-&gt;gpio_oe_togl = (sio_hw-&gt;gpio_oe ^ (uint32_t)value) &amp; (uint32_t)mask;</div>
<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span>    sio_hw-&gt;gpio_oe_togl = (sio_hw-&gt;gpio_oe ^ (uint32_t)value) &amp; (uint32_t)mask;</div>
<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span>    sio_hw-&gt;gpio_hi_oe_togl = (sio_hw-&gt;gpio_hi_oe ^ (uint32_t)(value &gt;&gt; 32u)) &amp; (uint32_t)(mask &gt;&gt; 32u);</div>
<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span>}</div>
<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> </div>
<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> </div>
<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578"> 1310</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a>(uint32_t values) {</div>
<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span>    gpioc_lo_oe_put(values);</div>
<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span>    sio_hw-&gt;gpio_oe = values;</div>
<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span>}</div>
<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> </div>
<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4"> 1323</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4">gpio_set_dir_all_bits64</a>(uint64_t values) {</div>
<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span>    gpioc_hilo_oe_put(values);</div>
<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span><span class="preprocessor">#elif NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span>    sio_hw-&gt;gpio_oe = (uint32_t)values;</div>
<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span>    sio_hw-&gt;gpio_oe = (uint32_t)values;</div>
<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span>    sio_hw-&gt;gpio_hi_oe = (uint32_t)(values &gt;&gt; 32u);</div>
<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span>}</div>
<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> </div>
<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681"> 1340</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a>(uint gpio, <span class="keywordtype">bool</span> out) {</div>
<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span>    gpioc_bit_oe_put(gpio, out);</div>
<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span><span class="preprocessor">#elif PICO_RP2040 || NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span>    uint32_t mask = 1ul &lt;&lt; gpio;</div>
<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span>    <span class="keywordflow">if</span> (out)</div>
<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span>        <a class="code hl_function" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a>(mask);</div>
<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span>    <span class="keywordflow">else</span></div>
<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span>        <a class="code hl_function" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a>(mask);</div>
<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span>    uint32_t mask = 1u &lt;&lt; (gpio &amp; 0x1fu);</div>
<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span>    <span class="keywordflow">if</span> (gpio &lt; 32) {</div>
<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span>        <span class="keywordflow">if</span> (out) {</div>
<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span>            sio_hw-&gt;gpio_oe_set = mask;</div>
<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span>        } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span>            sio_hw-&gt;gpio_oe_clr = mask;</div>
<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span>        }</div>
<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span>    } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span>        <span class="keywordflow">if</span> (out) {</div>
<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span>            sio_hw-&gt;gpio_hi_oe_set = mask;</div>
<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span>        } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span>            sio_hw-&gt;gpio_hi_oe_clr = mask;</div>
<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span>        }</div>
<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span>    }</div>
<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span>}</div>
<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> </div>
<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc"> 1373</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a>(uint gpio) {</div>
<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span><span class="preprocessor">#if NUM_BANK0_GPIOS &lt;= 32</span></div>
<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span>    <span class="keywordflow">return</span> sio_hw-&gt;gpio_oe &amp; (1u &lt;&lt; (gpio));</div>
<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span>    uint32_t bits = gpio &lt; 32 ? sio_hw-&gt;gpio_oe : sio_hw-&gt;gpio_hi_oe;</div>
<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span>    <span class="keywordflow">return</span> bits &amp; (1u &lt;&lt; (gpio &amp; 0x1fu));</div>
<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span>}</div>
<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> </div>
<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed"> 1388</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint <a class="code hl_function" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a>(uint gpio) {</div>
<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span>    <span class="keywordflow">return</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a>(gpio); <span class="comment">// note GPIO_OUT is 1/true and GPIO_IN is 0/false anyway</span></div>
<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span>}</div>
<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> </div>
<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span><span class="preprocessor">#if PICO_SECURE</span></div>
<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> gpio_assign_to_ns(uint gpio, <span class="keywordtype">bool</span> ns) {</div>
<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span>    check_gpio_param(gpio);</div>
<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span>    <span class="keywordflow">if</span> (ns) <a class="code hl_function" href="group__hardware__base.html#ga625e737a57f12211cf1f634ca5095ae4">hw_set_bits</a>(&amp;accessctrl_hw-&gt;gpio_nsmask[gpio/32], 1u &lt;&lt; (gpio &amp; 0x1fu));</div>
<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span>    <span class="keywordflow">else</span> <a class="code hl_function" href="group__hardware__base.html#gafd1c089df868d987daf95870b501c2ed">hw_clear_bits</a>(&amp;accessctrl_hw-&gt;gpio_nsmask[gpio/32], 1u &lt;&lt; (gpio &amp; 0x1fu));</div>
<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span>}</div>
<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span><span class="keyword">extern</span> <span class="keywordtype">void</span> gpio_debug_pins_init(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> </div>
<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span><span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span>}</div>
<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> </div>
<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> </div>
<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span><span class="comment">// PICO_CONFIG: PICO_DEBUG_PIN_BASE, First pin to use for debug output (if enabled), min=0, max=28, default=19, group=hardware_gpio</span></div>
<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span><span class="preprocessor">#ifndef PICO_DEBUG_PIN_BASE</span></div>
<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span><span class="preprocessor">#define PICO_DEBUG_PIN_BASE 19u</span></div>
<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> </div>
<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span><span class="comment">// PICO_CONFIG: PICO_DEBUG_PIN_COUNT, Number of pins to use for debug output (if enabled), min=1, max=28, default=3, group=hardware_gpio</span></div>
<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span><span class="preprocessor">#ifndef PICO_DEBUG_PIN_COUNT</span></div>
<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span><span class="preprocessor">#define PICO_DEBUG_PIN_COUNT 3u</span></div>
<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> </div>
<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span><span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span><span class="comment">// note these two macros may only be used once per and only apply per compilation unit (hence the CU_)</span></div>
<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span><span class="preprocessor">#define CU_REGISTER_DEBUG_PINS(...) enum __unused DEBUG_PIN_TYPE { _none = 0, __VA_ARGS__ }; static enum DEBUG_PIN_TYPE __selected_debug_pins;</span></div>
<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span><span class="preprocessor">#define CU_SELECT_DEBUG_PINS(x) static enum DEBUG_PIN_TYPE __selected_debug_pins = (x);</span></div>
<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span><span class="preprocessor">#define DEBUG_PINS_ENABLED(p) (__selected_debug_pins == (p))</span></div>
<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span><span class="preprocessor">#define CU_REGISTER_DEBUG_PINS(p...) \</span></div>
<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span><span class="preprocessor">    enum DEBUG_PIN_TYPE { _none = 0, p }; \</span></div>
<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span><span class="preprocessor">    template &lt;enum DEBUG_PIN_TYPE&gt; class __debug_pin_settings { \</span></div>
<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span><span class="preprocessor">        public: \</span></div>
<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span><span class="preprocessor">            static inline bool enabled() { return false; } \</span></div>
<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span><span class="preprocessor">    };</span></div>
<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span><span class="preprocessor">#define CU_SELECT_DEBUG_PINS(x) template&lt;&gt; inline bool __debug_pin_settings&lt;x&gt;::enabled() { return true; };</span></div>
<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span><span class="preprocessor">#define DEBUG_PINS_ENABLED(p) (__debug_pin_settings&lt;p&gt;::enabled())</span></div>
<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span><span class="preprocessor">#define DEBUG_PINS_SET(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_set_mask((unsigned)(v)&lt;&lt;PICO_DEBUG_PIN_BASE)</span></div>
<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span><span class="preprocessor">#define DEBUG_PINS_CLR(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_clr_mask((unsigned)(v)&lt;&lt;PICO_DEBUG_PIN_BASE)</span></div>
<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span><span class="preprocessor">#define DEBUG_PINS_XOR(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_xor_mask((unsigned)(v)&lt;&lt;PICO_DEBUG_PIN_BASE)</span></div>
<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span> </div>
<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span><span class="preprocessor">#endif </span><span class="comment">// _GPIO_H_</span></div>
<div class="ttc" id="agpio_8h_html_a27085b238a536b1a919497a563caf666"><div class="ttname"><a href="gpio_8h.html#a27085b238a536b1a919497a563caf666">gpio_dir</a></div><div class="ttdeci">gpio_dir</div><div class="ttdef"><b>Definition:</b> gpio.h:170</div></div>
<div class="ttc" id="agpio_8h_html_a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531"><div class="ttname"><a href="gpio_8h.html#a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531">GPIO_OUT</a></div><div class="ttdeci">@ GPIO_OUT</div><div class="ttdoc">set GPIO to output</div><div class="ttdef"><b>Definition:</b> gpio.h:171</div></div>
<div class="ttc" id="agpio_8h_html_a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155"><div class="ttname"><a href="gpio_8h.html#a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155">GPIO_IN</a></div><div class="ttdeci">@ GPIO_IN</div><div class="ttdoc">set GPIO to input</div><div class="ttdef"><b>Definition:</b> gpio.h:172</div></div>
<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a></div><div class="ttdeci">gpio_override</div><div class="ttdef"><b>Definition:</b> gpio.h:207</div></div>
<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">GPIO_OVERRIDE_INVERT</a></div><div class="ttdeci">@ GPIO_OVERRIDE_INVERT</div><div class="ttdoc">invert peripheral signal selected via gpio_set_function</div><div class="ttdef"><b>Definition:</b> gpio.h:209</div></div>
<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">GPIO_OVERRIDE_HIGH</a></div><div class="ttdeci">@ GPIO_OVERRIDE_HIGH</div><div class="ttdoc">drive high/enable output</div><div class="ttdef"><b>Definition:</b> gpio.h:211</div></div>
<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">GPIO_OVERRIDE_LOW</a></div><div class="ttdeci">@ GPIO_OVERRIDE_LOW</div><div class="ttdoc">drive low/disable output</div><div class="ttdef"><b>Definition:</b> gpio.h:210</div></div>
<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">GPIO_OVERRIDE_NORMAL</a></div><div class="ttdeci">@ GPIO_OVERRIDE_NORMAL</div><div class="ttdoc">peripheral signal selected via gpio_set_function</div><div class="ttdef"><b>Definition:</b> gpio.h:208</div></div>
<div class="ttc" id="agroup__hardware__base_html_ga625e737a57f12211cf1f634ca5095ae4"><div class="ttname"><a href="group__hardware__base.html#ga625e737a57f12211cf1f634ca5095ae4">hw_set_bits</a></div><div class="ttdeci">static __force_inline void hw_set_bits(io_rw_32 *addr, uint32_t mask)</div><div class="ttdoc">Atomically set the specified bits to 1 in a HW register.</div><div class="ttdef"><b>Definition:</b> address_mapped.h:135</div></div>
<div class="ttc" id="agroup__hardware__base_html_gafd1c089df868d987daf95870b501c2ed"><div class="ttname"><a href="group__hardware__base.html#gafd1c089df868d987daf95870b501c2ed">hw_clear_bits</a></div><div class="ttdeci">static __force_inline void hw_clear_bits(io_rw_32 *addr, uint32_t mask)</div><div class="ttdoc">Atomically clear the specified bits to 0 in a HW register.</div><div class="ttdef"><b>Definition:</b> address_mapped.h:145</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga07c4de2660686b9158a5b0526ccbb446"><div class="ttname"><a href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a></div><div class="ttdeci">static void gpio_add_raw_irq_handler_with_order_priority(uint gpio, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:669</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga08b1f920beba446c4d4385de999cf945"><div class="ttname"><a href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a></div><div class="ttdeci">void gpio_set_irq_enabled(uint gpio, uint32_t event_mask, bool enabled)</div><div class="ttdoc">Enable or disable specific interrupt events for specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:186</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga091c148a5cfaf2b55e716b6effef6360"><div class="ttname"><a href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a></div><div class="ttdeci">void gpio_acknowledge_irq(uint gpio, uint32_t event_mask)</div><div class="ttdoc">Acknowledge a GPIO interrupt for the specified events on the calling core.</div><div class="ttdef"><b>Definition:</b> gpio.c:259</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga0a818ceaa50e3e2317fbb0856d47eaef"><div class="ttname"><a href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a></div><div class="ttdeci">static bool gpio_get_out_level(uint gpio)</div><div class="ttdoc">Determine whether a GPIO is currently driven high or low.</div><div class="ttdef"><b>Definition:</b> gpio.h:1188</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga0ac6439a42e8080449a192bb79e6166c"><div class="ttname"><a href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c">gpio_put_all64</a></div><div class="ttdeci">static void gpio_put_all64(uint64_t value)</div><div class="ttdoc">Drive all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1128</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga0b10ec79e10d7df958373b178debcd2e"><div class="ttname"><a href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a></div><div class="ttdeci">void gpio_set_dormant_irq_enabled(uint gpio, uint32_t event_mask, bool enabled)</div><div class="ttdoc">Enable dormant wake up interrupt for specified GPIO and events.</div><div class="ttdef"><b>Definition:</b> gpio.c:253</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga0ffe0ddabcd081b513731275df97e7ca"><div class="ttname"><a href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a></div><div class="ttdeci">void gpio_set_drive_strength(uint gpio, enum gpio_drive_strength drive)</div><div class="ttdoc">Set drive strength for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:138</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga1339fecb25e263eee2a6b9d362c3a946"><div class="ttname"><a href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a></div><div class="ttdeci">enum gpio_function_rp2040 gpio_function_t</div><div class="ttdoc">GPIO pin function selectors on RP2040 (used as typedef gpio_function_t)</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga1378540c24ec318ac7674dac4ec30140"><div class="ttname"><a href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a></div><div class="ttdeci">enum gpio_drive_strength gpio_get_drive_strength(uint gpio)</div><div class="ttdoc">Determine current drive strength for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:146</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga14eba84c1c8f80b08a770775d3bf060a"><div class="ttname"><a href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a></div><div class="ttdeci">gpio_drive_strength</div><div class="ttdoc">Drive strength levels for GPIO outputs.</div><div class="ttdef"><b>Definition:</b> gpio.h:232</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga1f52eecc12d4348ef8bd1e17bdb4b107"><div class="ttname"><a href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a></div><div class="ttdeci">void gpio_set_input_hysteresis_enabled(uint gpio, bool enabled)</div><div class="ttdoc">Enable/disable GPIO input hysteresis (Schmitt trigger)</div><div class="ttdef"><b>Definition:</b> gpio.c:106</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga22f6b90c4c7e0013b4b5341de0a44fc4"><div class="ttname"><a href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a></div><div class="ttdeci">void gpio_set_function(uint gpio, gpio_function_t fn)</div><div class="ttdoc">Select GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:38</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga24dabfcb46dde4daa8938b36df130c31"><div class="ttname"><a href="group__hardware__gpio.html#ga24dabfcb46dde4daa8938b36df130c31">gpio_get_function</a></div><div class="ttdeci">gpio_function_t gpio_get_function(uint gpio)</div><div class="ttdoc">Determine current GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:56</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga24e5e9eed83f48ffe77f732b800f1405"><div class="ttname"><a href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_masked64(uint64_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:237</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga250e767769daabb71b5ea8cab49b4463"><div class="ttname"><a href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a></div><div class="ttdeci">void gpio_set_oeover(uint gpio, uint value)</div><div class="ttdoc">Select GPIO output enable override.</div><div class="ttdef"><b>Definition:</b> gpio.c:98</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga25b1f0b4dc42144da4ed3acbed513095"><div class="ttname"><a href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a></div><div class="ttdeci">void gpio_remove_raw_irq_handler_masked(uint32_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:241</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga2a78dd5d9b2a181794c632aa4881c5ed"><div class="ttname"><a href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a></div><div class="ttdeci">static uint gpio_get_dir(uint gpio)</div><div class="ttdoc">Get a specific GPIO direction.</div><div class="ttdef"><b>Definition:</b> gpio.h:1388</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga2db74931aa7a9b7396765d86a6c53148"><div class="ttname"><a href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148">gpio_set_dir_masked64</a></div><div class="ttdeci">static void gpio_set_dir_masked64(uint64_t mask, uint64_t value)</div><div class="ttdoc">Set multiple GPIO directions.</div><div class="ttdef"><b>Definition:</b> gpio.h:1293</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga2e78fcd487a3a2e173322c6502fe9419"><div class="ttname"><a href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a></div><div class="ttdeci">static void gpio_add_raw_irq_handler(uint gpio, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:768</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga2f3ccb15297fecd3792359d9cbbf6ed6"><div class="ttname"><a href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a></div><div class="ttdeci">void gpio_init_mask(uint gpio_mask)</div><div class="ttdoc">Initialise multiple GPIOs (enabled I/O and set func to GPIO_FUNC_SIO)</div><div class="ttdef"><b>Definition:</b> gpio.c:291</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga30a6733240f3d2e25e6b579b6c3902da"><div class="ttname"><a href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a></div><div class="ttdeci">static void gpio_pull_up(uint gpio)</div><div class="ttdoc">Set specified GPIO to be pulled up.</div><div class="ttdef"><b>Definition:</b> gpio.h:299</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga32c1aae77b4b3bf42e9ae554d16284ab"><div class="ttname"><a href="group__hardware__gpio.html#ga32c1aae77b4b3bf42e9ae554d16284ab">gpio_set_function_masked</a></div><div class="ttdeci">void gpio_set_function_masked(uint32_t gpio_mask, gpio_function_t fn)</div><div class="ttdoc">Select the function for multiple GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.c:300</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga37b23dea291af5926735b5e8c87b7dbb"><div class="ttname"><a href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a></div><div class="ttdeci">void gpio_set_irq_callback(gpio_irq_callback_t callback)</div><div class="ttdoc">Set the generic callback used for GPIO IRQ events for the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:208</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga4422d9c09199d199e8fe736b3c29ae49"><div class="ttname"><a href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a></div><div class="ttdeci">enum gpio_slew_rate gpio_get_slew_rate(uint gpio)</div><div class="ttdoc">Determine current slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:128</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga495c253b01a68b0f81721d2061741243"><div class="ttname"><a href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a></div><div class="ttdeci">static void gpio_remove_raw_irq_handler(uint gpio, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:814</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga4df18d737955c17a65c5a94412826674"><div class="ttname"><a href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a></div><div class="ttdeci">void gpio_deinit(uint gpio)</div><div class="ttdoc">Resets a GPIO back to the NULL function, i.e. disables it.</div><div class="ttdef"><b>Definition:</b> gpio.c:287</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga50b526aa81f036a20c60f04106910578"><div class="ttname"><a href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a></div><div class="ttdeci">static void gpio_set_dir_all_bits(uint32_t values)</div><div class="ttdoc">Set direction of all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1310</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga54c35d7beb7025aa001ae5b93d38935b"><div class="ttname"><a href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a></div><div class="ttdeci">static bool gpio_is_pulled_down(uint gpio)</div><div class="ttdoc">Determine if the specified GPIO is pulled down.</div><div class="ttdef"><b>Definition:</b> gpio.h:328</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga6037bdaf406a84336043c9a6c40e5073"><div class="ttname"><a href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a></div><div class="ttdeci">void gpio_set_inover(uint gpio, uint value)</div><div class="ttdoc">Select GPIO input override.</div><div class="ttdef"><b>Definition:</b> gpio.c:82</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga6165f07f4b619dd08ea6dc97d069e78a"><div class="ttname"><a href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a></div><div class="ttdeci">void gpio_set_irq_enabled_with_callback(uint gpio, uint32_t event_mask, bool enabled, gpio_irq_callback_t callback)</div><div class="ttdoc">Convenience function which performs multiple GPIO IRQ related initializations.</div><div class="ttdef"><b>Definition:</b> gpio.c:201</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga6347e27da3ab34f1ea65b5ae16ab724f"><div class="ttname"><a href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a></div><div class="ttdeci">gpio_irq_level</div><div class="ttdoc">GPIO Interrupt level definitions (GPIO events)</div><div class="ttdef"><b>Definition:</b> gpio.h:190</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga64de3fa94def1d5e8c87f419f25ea7fd"><div class="ttname"><a href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a></div><div class="ttdeci">static void gpio_xor_mask(uint32_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:1003</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga6a40edf0d86f6b3f0dcb51a768cf4681"><div class="ttname"><a href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a></div><div class="ttdeci">static void gpio_set_dir(uint gpio, bool out)</div><div class="ttdoc">Set a single GPIO direction.</div><div class="ttdef"><b>Definition:</b> gpio.h:1340</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga6aca495d644a6ae66050a99ef44defbe"><div class="ttname"><a href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a></div><div class="ttdeci">static void gpio_clr_mask(uint32_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:955</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga6ff6c7a437acc5750c0a290c086347b5"><div class="ttname"><a href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5">gpio_put_masked_n</a></div><div class="ttdeci">static void gpio_put_masked_n(uint n, uint32_t mask, uint32_t value)</div><div class="ttdoc">Drive GPIOs high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:1098</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga71c466b22b8ce63c8863933c82c4810e"><div class="ttname"><a href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e">gpio_set_dir_out_masked64</a></div><div class="ttdeci">static void gpio_set_dir_out_masked64(uint64_t mask)</div><div class="ttdoc">Set a number of GPIOs to output.</div><div class="ttdef"><b>Definition:</b> gpio.h:1223</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga71d35b29e897b9bb4fc881b587b08cab"><div class="ttname"><a href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a></div><div class="ttdeci">static void gpio_put(uint gpio, bool value)</div><div class="ttdoc">Drive a single GPIO high/low.</div><div class="ttdef"><b>Definition:</b> gpio.h:1145</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga72a5e5a6ac1a108887229af522e65a06"><div class="ttname"><a href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06">gpio_xor_mask_n</a></div><div class="ttdeci">static void gpio_xor_mask_n(uint n, uint32_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:1033</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga72c250c9393043ea5beb56092d26e229"><div class="ttname"><a href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a></div><div class="ttdeci">gpio_slew_rate</div><div class="ttdoc">Slew rate limiting levels for GPIO outputs.</div><div class="ttdef"><b>Definition:</b> gpio.h:221</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga74a8c3e55185581bc3df335aea1d0fb8"><div class="ttname"><a href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a></div><div class="ttdeci">void gpio_set_input_enabled(uint gpio, bool enabled)</div><div class="ttdoc">Enable GPIO input.</div><div class="ttdef"><b>Definition:</b> gpio.c:273</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga78f8d7c7c8fb66794f7c269311f145ae"><div class="ttname"><a href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_with_order_priority_masked64(uint64_t gpio_mask, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:227</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga79819a97822983d7422d37c3e532cc53"><div class="ttname"><a href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a></div><div class="ttdeci">static void gpio_set_dir_in_masked(uint32_t mask)</div><div class="ttdoc">Set a number of GPIOs to input.</div><div class="ttdef"><b>Definition:</b> gpio.h:1239</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga7aa41e10d04a8d99d9a8c4d7ba5007b8"><div class="ttname"><a href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a></div><div class="ttdeci">static void gpio_put_all(uint32_t value)</div><div class="ttdoc">Drive all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1115</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga7b2cc867ac41996100e881a768c7f969"><div class="ttname"><a href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a></div><div class="ttdeci">static void gpio_set_dir_out_masked(uint32_t mask)</div><div class="ttdoc">Set a number of GPIOs to output.</div><div class="ttdef"><b>Definition:</b> gpio.h:1208</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga829129eed5d42f3455e9da339219d814"><div class="ttname"><a href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a></div><div class="ttdeci">void gpio_set_outover(uint gpio, uint value)</div><div class="ttdoc">Set GPIO output override.</div><div class="ttdef"><b>Definition:</b> gpio.c:90</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga83093178ba0ad7d711bff47fc90d361b"><div class="ttname"><a href="group__hardware__gpio.html#ga83093178ba0ad7d711bff47fc90d361b">gpio_set_function_masked64</a></div><div class="ttdeci">void gpio_set_function_masked64(uint64_t gpio_mask, gpio_function_t fn)</div><div class="ttdoc">Select the function for multiple GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.c:309</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga8aa4741d93dc40bc728dbd3e41813ad1"><div class="ttname"><a href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a></div><div class="ttdeci">void gpio_init(uint gpio)</div><div class="ttdoc">Initialise a GPIO for (enabled I/O and set func to GPIO_FUNC_SIO)</div><div class="ttdef"><b>Definition:</b> gpio.c:281</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga8fcdfeff45cc2030530bf00c6ae1e0a3"><div class="ttname"><a href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a></div><div class="ttdeci">void(* gpio_irq_callback_t)(uint gpio, uint32_t event_mask)</div><div class="ttdef"><b>Definition:</b> gpio.h:205</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga9310346a1f7b58ba6b6be82097980af6"><div class="ttname"><a href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a></div><div class="ttdeci">void gpio_remove_raw_irq_handler_masked64(uint64_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:247</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga94edb03754cad21d38ef58bf85c13814"><div class="ttname"><a href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">gpio_set_mask_n</a></div><div class="ttdeci">static void gpio_set_mask_n(uint n, uint32_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:938</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga964463f96737c6d1127188b8c0bc44b8"><div class="ttname"><a href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">gpio_clr_mask_n</a></div><div class="ttdeci">static void gpio_clr_mask_n(uint n, uint32_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:986</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga9788ec1b8306c6bacfb578f0074eb3ad"><div class="ttname"><a href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a></div><div class="ttdeci">void gpio_set_irqover(uint gpio, uint value)</div><div class="ttdoc">Set GPIO IRQ override.</div><div class="ttdef"><b>Definition:</b> gpio.c:73</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_ga9eea2536fc6321a238fe6937652c4e9e"><div class="ttname"><a href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">gpio_set_mask64</a></div><div class="ttdeci">static void gpio_set_mask64(uint64_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:921</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaa0dbc5c65103d483217a190b72ed26dc"><div class="ttname"><a href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a></div><div class="ttdeci">static bool gpio_is_dir_out(uint gpio)</div><div class="ttdoc">Check if a specific GPIO direction is OUT.</div><div class="ttdef"><b>Definition:</b> gpio.h:1373</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaa4c504fbf6c76632e1d11e507a3861e9"><div class="ttname"><a href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">gpio_get_all64</a></div><div class="ttdeci">static uint64_t gpio_get_all64(void)</div><div class="ttdoc">Get raw value of all GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.h:889</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaa613a661abe840e614116c67b84c2003"><div class="ttname"><a href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003">gpio_put_masked64</a></div><div class="ttdeci">static void gpio_put_masked64(uint64_t mask, uint64_t value)</div><div class="ttdoc">Drive GPIOs high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:1075</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaa64fdceff54dda03f4427f04c2f9ced2"><div class="ttname"><a href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a></div><div class="ttdeci">static void gpio_set_dir_masked(uint32_t mask, uint32_t value)</div><div class="ttdoc">Set multiple GPIO directions.</div><div class="ttdef"><b>Definition:</b> gpio.h:1274</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gab37bb6b15065720e3efc9c39b3207a16"><div class="ttname"><a href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">gpio_clr_mask64</a></div><div class="ttdeci">static void gpio_clr_mask64(uint64_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:968</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gab6a80e41c677f7643a114351ea48ced4"><div class="ttname"><a href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4">gpio_set_dir_all_bits64</a></div><div class="ttdeci">static void gpio_set_dir_all_bits64(uint64_t values)</div><div class="ttdoc">Set direction of all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1323</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gab6bf9552da32b3dd0a5d0db45d8374fc"><div class="ttname"><a href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a></div><div class="ttdeci">void gpio_set_pulls(uint gpio, bool up, bool down)</div><div class="ttdoc">Select up and down pulls on specific GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:63</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gab777c66bd5b766a8552ed5625197b119"><div class="ttname"><a href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119">gpio_xor_mask64</a></div><div class="ttdeci">static void gpio_xor_mask64(uint64_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:1016</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gac451f3251c0d0bea97aa535f65974ec8"><div class="ttname"><a href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a></div><div class="ttdeci">bool gpio_is_input_hysteresis_enabled(uint gpio)</div><div class="ttdoc">Determine whether input hysteresis is enabled on a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:115</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gac6dbb6aa0cd534decaee71bfb7883371"><div class="ttname"><a href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371">gpio_set_dir_in_masked64</a></div><div class="ttdeci">static void gpio_set_dir_in_masked64(uint64_t mask)</div><div class="ttdoc">Set a number of GPIOs to input.</div><div class="ttdef"><b>Definition:</b> gpio.h:1252</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gac7038968884d02b67403a50f1be6ecd6"><div class="ttname"><a href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a></div><div class="ttdeci">static bool gpio_is_pulled_up(uint gpio)</div><div class="ttdoc">Determine if the specified GPIO is pulled up.</div><div class="ttdef"><b>Definition:</b> gpio.h:309</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gac86436d117c7a87f982c9b3311543302"><div class="ttname"><a href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a></div><div class="ttdeci">static void gpio_put_masked(uint32_t mask, uint32_t value)</div><div class="ttdoc">Drive GPIOs high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:1056</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gae57a625b7e0bcac6d596f35864ffc792"><div class="ttname"><a href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a></div><div class="ttdeci">static void gpio_disable_pulls(uint gpio)</div><div class="ttdoc">Disable pulls on specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:337</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gae895be2d3c5af5df460150eafe7858a4"><div class="ttname"><a href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a></div><div class="ttdeci">static uint32_t gpio_get_all(void)</div><div class="ttdoc">Get raw value of all GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.h:876</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaea499c33479cf8f87a91a74411ad241f"><div class="ttname"><a href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a></div><div class="ttdeci">static void gpio_pull_down(uint gpio)</div><div class="ttdoc">Set specified GPIO to be pulled down.</div><div class="ttdef"><b>Definition:</b> gpio.h:318</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaf1d12efbed0809650d98fe9a424876c8"><div class="ttname"><a href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a></div><div class="ttdeci">void gpio_set_slew_rate(uint gpio, enum gpio_slew_rate slew)</div><div class="ttdoc">Set slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:120</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaf2d1208ba7e3b02b23e7385350182583"><div class="ttname"><a href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a></div><div class="ttdeci">static uint32_t gpio_get_irq_event_mask(uint gpio)</div><div class="ttdoc">Return the current interrupt status (pending events) for the given GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:546</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaf38c0b39fba06d1a49d1be56ef548d73"><div class="ttname"><a href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a></div><div class="ttdeci">static bool gpio_get(uint gpio)</div><div class="ttdoc">Get state of a single specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:859</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaf3aa12aa4543965e24f52cfa9b529904"><div class="ttname"><a href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a></div><div class="ttdeci">static void gpio_set_mask(uint32_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:908</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaf43d2f09003804f535dc118688a9702c"><div class="ttname"><a href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_with_order_priority_masked(uint32_t gpio_mask, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:221</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gaf745f0bcdaf049d2e060aa8971352a55"><div class="ttname"><a href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_masked(uint32_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:233</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_2MA</div><div class="ttdoc">2 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:233</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_8MA</div><div class="ttdoc">8 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:235</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_12MA</div><div class="ttdoc">12 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:236</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_4MA</div><div class="ttdoc">4 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:234</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e">GPIO_IRQ_EDGE_RISE</a></div><div class="ttdeci">@ GPIO_IRQ_EDGE_RISE</div><div class="ttdoc">IRQ when the GPIO has transitioned from a logical 1 to a logical 0.</div><div class="ttdef"><b>Definition:</b> gpio.h:194</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59">GPIO_IRQ_EDGE_FALL</a></div><div class="ttdeci">@ GPIO_IRQ_EDGE_FALL</div><div class="ttdoc">IRQ when the GPIO has transitioned from a logical 0 to a logical 1.</div><div class="ttdef"><b>Definition:</b> gpio.h:193</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136">GPIO_IRQ_LEVEL_LOW</a></div><div class="ttdeci">@ GPIO_IRQ_LEVEL_LOW</div><div class="ttdoc">IRQ when the GPIO pin is a logical 1.</div><div class="ttdef"><b>Definition:</b> gpio.h:191</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de">GPIO_IRQ_LEVEL_HIGH</a></div><div class="ttdeci">@ GPIO_IRQ_LEVEL_HIGH</div><div class="ttdoc">IRQ when the GPIO pin is a logical 0.</div><div class="ttdef"><b>Definition:</b> gpio.h:192</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade"><div class="ttname"><a href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a></div><div class="ttdeci">@ GPIO_SLEW_RATE_FAST</div><div class="ttdoc">Slew rate limiting disabled.</div><div class="ttdef"><b>Definition:</b> gpio.h:223</div></div>
<div class="ttc" id="agroup__hardware__gpio_html_gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634"><div class="ttname"><a href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a></div><div class="ttdeci">@ GPIO_SLEW_RATE_SLOW</div><div class="ttdoc">Slew rate limiting enabled.</div><div class="ttdef"><b>Definition:</b> gpio.h:222</div></div>
<div class="ttc" id="agroup__hardware__irq_html_ga8478ee26cc144e947ccd75b0169059a6"><div class="ttname"><a href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a></div><div class="ttdeci">void(* irq_handler_t)(void)</div><div class="ttdoc">Interrupt handler function type.</div><div class="ttdef"><b>Definition:</b> irq.h:195</div></div>
<div class="ttc" id="agroup__pico__platform_html_ga58434ad816f519308ee02c639b7965bc"><div class="ttname"><a href="group__pico__platform.html#ga58434ad816f519308ee02c639b7965bc">get_core_num</a></div><div class="ttdeci">static __force_inline uint get_core_num(void)</div><div class="ttdoc">Get the current core number.</div><div class="ttdef"><b>Definition:</b> platform.h:141</div></div>
<div class="ttc" id="airq_8h_html"><div class="ttname"><a href="irq_8h.html">irq.h</a></div></div>
<div class="ttc" id="apico_8h_html"><div class="ttname"><a href="pico_8h.html">pico.h</a></div></div>
<div class="ttc" id="astructio__bank0__irq__ctrl__hw__t_html"><div class="ttname"><a href="structio__bank0__irq__ctrl__hw__t.html">io_bank0_irq_ctrl_hw_t</a></div><div class="ttdef"><b>Definition:</b> io_bank0.h:67</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->

	<script src="main.js"></script>
</body>
</html>